Skip to content

docs(rules): Rule 0 — mark the 3 legacy hygiene .sh violations as cleared#3048

Merged
AceHack merged 2 commits into
mainfrom
fix/rule-0-update-stale-legacy-violations-2026-05-13
May 13, 2026
Merged

docs(rules): Rule 0 — mark the 3 legacy hygiene .sh violations as cleared#3048
AceHack merged 2 commits into
mainfrom
fix/rule-0-update-stale-legacy-violations-2026-05-13

Conversation

@AceHack
Copy link
Copy Markdown
Member

@AceHack AceHack commented May 13, 2026

Summary

The "Legacy violations" callout in .claude/rules/rule-0-no-sh-files.md listed three tools/hygiene/audit-*.sh files as outstanding TS-port debt. All three have since been ported to .ts and the corresponding .sh files removed from the tree:

Was (.sh) Now (.ts)
tools/hygiene/audit-lost-files.sh audit-lost-files.ts
tools/hygiene/audit-trajectories.sh audit-trajectories.ts
tools/hygiene/audit-backlog-items.sh audit-backlog-items.ts

tools/hygiene/ is now entirely Rule-0-compliant.

Surfaced as a side observation

While verifying, I noticed .gemini/service/install-lior-service.sh + .gemini/service/lior-loop.sh live outside tools/setup/ but are install-graph by intent. The rule's "only tools/setup/" phrasing technically excludes them. Resolution is a separate design question (expand allowed-path list vs port/relocate). Captured as a NOTE in the rule body rather than silently leaving the ambiguity.

Test plan

  • find . -name "*.sh" -not -path "./tools/setup/*" produces only:
    • vendored Lean/Mathlib/Batteries packages (not ours)
    • references/upstreams/* (vendored upstreams, not ours)
    • .gemini/service/*.sh (surfaced in PR body as the remaining design question)
  • Worktree-isolated build (/tmp/zeta-rule0-update) per the multi-Otto split-brain pattern

Composes with

Continuation of this session's substrate-hygiene sweep — alongside #3043, #3044, #3045, #3047, this PR closes the staleness in the rule that flagged outstanding hygiene work that's already done.

🤖 Generated with Claude Code

…ared

The "Legacy violations" callout in `.claude/rules/rule-0-no-sh-files.md`
listed three `tools/hygiene/audit-*.sh` files as outstanding TS-port
debt. All three have since been ported to `.ts` and the corresponding
`.sh` files removed from the tree:

  tools/hygiene/audit-lost-files.sh      → audit-lost-files.ts
  tools/hygiene/audit-trajectories.sh    → audit-trajectories.ts
  tools/hygiene/audit-backlog-items.sh   → audit-backlog-items.ts

Update the rule to reflect the cleared state. Also surface the one
remaining design question that an `.sh` audit raises: the Lior agent's
`.gemini/service/install-lior-service.sh` + `lior-loop.sh` are install-
graph by intent but live outside `tools/setup/`. Note that as a
separate design question (out-of-scope for Rule 0 itself) rather than
silently leaving the rule's "only tools/setup/" phrasing ambiguous.

Substrate-hygiene continuation of the 9 → 0 dangling-ref sweep started
this session.

Co-Authored-By: Claude <noreply@anthropic.com>
Copilot AI review requested due to automatic review settings May 13, 2026 22:46
@AceHack AceHack enabled auto-merge (squash) May 13, 2026 22:46
…inues

Records: PR #3046 (Otto-Desktop's B-0449 design) merged since previous
tick. Speculative pickup audited `.claude/rules/` for staleness adjacent
to the session's hygiene sweep; found `rule-0-no-sh-files.md` still
naming three already-ported `tools/hygiene/audit-*.sh` files as
outstanding TS-port debt. PR #3048 updates the rule + surfaces the
`.gemini/service/*.sh` design question separately.

Co-Authored-By: Claude <noreply@anthropic.com>
@AceHack AceHack merged commit 93501c4 into main May 13, 2026
21 checks passed
@AceHack AceHack deleted the fix/rule-0-update-stale-legacy-violations-2026-05-13 branch May 13, 2026 22:49
Copy link
Copy Markdown

Copilot AI left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Pull request overview

Updates Rule 0 documentation to reflect that the previously listed tools/hygiene/audit-*.sh scripts have been ported to TypeScript and are no longer outstanding debt, while also recording an open question about .gemini/service/*.sh scripts that appear “install-graph by intent” but sit outside the currently allowed path.

Changes:

  • Replace the “Legacy violations” callout with a “cleared 2026-05-13” statement for the three tools/hygiene/audit-*.sh ports.
  • Add a note documenting the remaining .gemini/service/*.sh ambiguity relative to the “only tools/setup/” rule wording.

Comment on lines +27 to +35
**Remaining audit question (out of scope for Rule 0 itself)**: the Lior
agent's `.gemini/service/install-lior-service.sh` +
`.gemini/service/lior-loop.sh` live outside `tools/setup/`. They are
install-graph by intent (Lior's launchd-equivalent service bootstrap)
but the rule's "only `tools/setup/`" phrasing technically excludes
them. Resolution is a separate design question — either expand the
rule's allowed-path list to include agent-specific install-graph
locations or port / relocate them under `tools/setup/`. Either way,
NOT a "legacy violation" in the same sense as the cleared three.
Comment on lines +27 to +35
**Remaining audit question (out of scope for Rule 0 itself)**: the Lior
agent's `.gemini/service/install-lior-service.sh` +
`.gemini/service/lior-loop.sh` live outside `tools/setup/`. They are
install-graph by intent (Lior's launchd-equivalent service bootstrap)
but the rule's "only `tools/setup/`" phrasing technically excludes
them. Resolution is a separate design question — either expand the
rule's allowed-path list to include agent-specific install-graph
locations or port / relocate them under `tools/setup/`. Either way,
NOT a "legacy violation" in the same sense as the cleared three.
AceHack added a commit that referenced this pull request May 13, 2026
…ap" framing (#3050)

* docs(rules): otto-channels card — B-0444 shipped, retire "follow-up gap" framing

The Otto inter-surface communication channels reference card listed
B-0444 (bus claim envelope worktree field) as a "follow-up gap" in
its Composes-with section. PR #3043 shipped that feature 2026-05-13
(merged as 5db892d). Updated the entry to reference the merged PR
rather than the row's open-state framing.

Sibling staleness cleanup to PR #3048 (Rule 0 legacy-violations
update); together they close the rule-callout staleness surfaced
by this session's substrate-hygiene sweep.

Co-Authored-By: Claude <noreply@anthropic.com>

* shard(tick): 2257Z — dangling refs 9 → 0 on main; otto-channels staleness cleared

Records: PR #3047 merged. Verified dangling-dep refs on main went 9 → 0
(the notifier output's `(warning: N dangling dep ref(s))` suffix is now
gone entirely). Speculative pickup audited `.claude/rules/` for adjacent
stale callouts; found `otto-channels-reference-card.md:82` listing B-0444
as a "follow-up gap" when PR #3043 shipped it. PR #3050 replaces the
framing with the merged-PR reference.

Co-Authored-By: Claude <noreply@anthropic.com>

---------

Co-authored-by: Claude <noreply@anthropic.com>
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

2 participants